package de.hauschild.gmltracer.gml.impl.value.geometry;

import de.hauschild.gmltracer.gml.TokenStack;
import de.hauschild.gmltracer.gml.impl.value.point.PointToken;
import de.hauschild.gmltracer.gml.impl.value.real.RealToken;
import de.hauschild.gmltracer.tracer.SurfaceProperties;

/**
 * A {@link SurfaceProperties} implementation using the GML {@link TokenStack}
 * to get its parameters.
 * 
 * @author Klaus Hauschild
 * @since 1.0.0
 */
public class GmlSurfaceProperties extends SurfaceProperties {

  /**
   * Instantiates a new GML surface properties.
   * 
   * @param tokenStack
   *          the token stack
   */
  @SuppressWarnings("boxing")
  public GmlSurfaceProperties(final TokenStack tokenStack) {
    super(tokenStack.pop(RealToken.class).getValue(), tokenStack.pop(RealToken.class).getValue(), tokenStack.pop(
        RealToken.class).getValue(), tokenStack.pop(PointToken.class).getValue());
  }
}
